//
//  Person.h
//  OC02_类和对象
//
//  Created by Hanlingyu on 16/7/5.
//  Copyright © 2016年 ltq. All rights reserved.
//

#import <Foundation/Foundation.h>  // 引用系统数据类库

@interface Person : NSObject

// 大括号中所包含的是类的成员变量(实例变量)
{
    // @protected   受保护的, 类本身及其子类
    // @public      公开的, 让外界可以访问
    // @private     私有的, 只有本类可以访问
    // 默认是受保护的
    // package 一般系统内部使用, 很少用
    
    @protected
    NSString *_name;
    @public
    NSInteger _age;

}

// 方法分为两种:
// '+'方法: 类方法(由类调用)
// '-'方法: 实例方法(由对象去调用)

// C语言的函数 返回值 函数名(参数列表)
void func(int a);

// 返回值类型 方法名: 参数
- (void)sleep:(NSInteger)time;

- (void)setName:(NSString *)name;
- (NSString *)name;

- (void)setAge:(NSInteger)age;
- (NSInteger)age;


//代码规范
// 1. - + 后面接空格
// 2. init后驼峰命名
// 3. 参数名首字母小写, 后续单词遵循驼峰命名法(小驼峰命名法)
// 4. 参数与参数间可以以回车区分, 回车后:对齐
- (instancetype)initWithName:(NSString *)name
                         age:(NSInteger)age;

+ (instancetype)personWithName:(NSString *)name
                         age:(NSInteger)age;

@end
